1. Field of the Invention
This invention relates to computer networks and file storage systems. More particularly, the invention relates to a system and method for adaptively responding to update messages for file replicas stored in a distributed file sharing system.
2. Description of the Related Art
Computer networks are important for many different applications. One important type of networking is referred to as peer-to-peer or P2P networking. As used herein, a peer-to-peer network is generally used to describe a decentralized network of peer nodes where each node may have similar capabilities and/or responsibilities. Participating peer nodes in a P2P network may communicate directly with each other. Work may be done and information may be shared through interaction among the peers. In addition, in a P2P network, a given peer node may be equally capable of serving as either a client or a server for another peer node.
A peer-to-peer network may be created to fulfill some specific need, or it may be created as a general-purpose network. Some P2P networks are created to deliver one type of service and thus typically run one application. For example, Napster was created to enable users to share music files. Other P2P networks are intended as general purpose networks which may support a large variety of applications. Any of various kinds of distributed applications may execute on a P2P network. Exemplary peer-to-peer applications include file sharing, messaging applications, distributed processing, etc.
A peer-to-peer network may be especially useful for applications which utilize distributed or shared data, in part because the reliance on centralized servers to access data can be reduced or eliminated. In particular, it may be desirable to implement a distributed file sharing system (or system for sharing other kinds of data objects) using a P2P network.
In some distributed file sharing systems, files may be replicated on multiple nodes in the system. File replicas on various nodes may be updated from time to time. For example, a replica of a file on one node may be kept coherent with respect to another replica of the file on another node. Thus, the first node may receive update messages for its replica when the second replica is changed. In the prior art, distributed file sharing systems typically have a fixed policy for responding to update messages. For example, a fixed policy may be employed in which file replicas are invalidated in response to receiving an update message. As another example, the fixed policy may be to apply the update represented by the update message. It may be desirable to enable nodes to respond adaptively to update messages for replicas instead of having a fixed policy.